package com.david.dao;

import com.david.entity.UserInfo;
import com.david.vo.UserBean;
import com.david.vo.UserCondition;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author David
 */
@Mapper
@Repository
public interface UserInfoMapper {

    /**
     * 获取所有user
     * @return 返回user列表
     */
    List<UserInfo> getAllUser();

    /**
     * 删除用户
     * @param username 用户名
     */
    void deleteUser(String username);

    /**
     * 增加用户
     * @param userBean 用户信息
     */
    void addUser(UserBean userBean);

    /**
     * 查找用户
     * @param userCondition 查找条件
     * @return 返回查找到的用户或者是null
     */
    List<UserInfo> findUser(UserCondition userCondition);

    /**
     * 批量删除用户
     * @param names 删除的名字列表
     */
    void batchRemoveUser(List<String> names);

    /**
     * 改变账户状态
     * @param userInfo 更改的信息
     */
    void changeUser(UserInfo userInfo);

    UserInfo findByUsername(String username);

}
